package com.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.shortlink.admin.dao.entity.GroupDO;
import com.shortlink.admin.dto.req.group.GroupInsertReqDTO;
import com.shortlink.admin.dto.req.group.GroupSortReqDTO;
import com.shortlink.admin.dto.req.group.GroupUpdateReqDTO;
import com.shortlink.admin.dto.resp.group.GroupRespDTO;

import java.util.List;

/**
 * 短链接分组接口层
 *
 * @author wp
 */
public interface GroupService extends IService<GroupDO> {
    /**
     * 新增短链接分组
     */
    void saveGroup(GroupInsertReqDTO groupInsert);

    /**
     * 新增用户短链接分组
     */
    void saveGroup(Long userId, GroupInsertReqDTO groupInsert);

    /**
     * 查询用户短链接分组集合
     */
    List<GroupRespDTO> listGroup();

    /**
     * 修改短链接分组
     */
    void updateGroup(GroupUpdateReqDTO groupUpdate);

    /**
     * 删除短链接分组
     */
    void deleteGroup(Long gid);

    /**
     * 短链接分组排序
     */
    void sortGroup(GroupSortReqDTO requestParam);

    /**
     * 获取分组名
     */
    String getGroupNameById(Long gid);
}
